{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.7.10","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","execution_count":1,"source":["import typing\r\n","import numpy as np\r\n","import cv2\r\n","import os\r\n","import matplotlib.pyplot as plt\r\n","\r\n","class image_cutter:\r\n","\r\n","    def __init__(self):\r\n","        self.width = 256\r\n","        self.height = 256\r\n","        self.stride = 256\r\n","\r\n","    #resizing(image, mask)\r\n","    #Parameters: (image: numpy array of image pixels), (mask: numpy array of mask image pixels)\r\n","    #returns a List of numpy array(float32) tuples\r\n","    def resizing(self, image, mask) -> typing.List[typing.Tuple[np.ndarray, np.ndarray]]:\r\n","\r\n","        #We are resizing the images in the data set to (256,256) resolution\r\n","        this_width = self.width\r\n","        this_height = self.height\r\n","        this_stride = self.stride\r\n","\r\n","        #PREPROCESSING THE ASPECTS\r\n","        #When the image is (less than 256) x (less than 256)\r\n","        if image.shape[0] < this_height and image.shape[1] < this_width:\r\n","            image = cv2.resize(image, (this_width,this_height), interpolation=cv2.INTER_AREA)\r\n","            mask = cv2.resize(mask, (this_width,this_height), interpolation=cv2.INTER_AREA)\r\n","\r\n","        #When the image is (higher than 256) x (less than 256)\r\n","        elif image.shape[0] < this_height and image.shape[1] > this_width:\r\n","            new_width = int(round(this_height * image.shape[1] / image.shape[0]))\r\n","\r\n","            image = cv2.resize(image, (new_width, this_height), interpolation=cv2.INTER_AREA)\r\n","            mask = cv2.resize(mask, (new_width,this_height), interpolation=cv2.INTER_AREA)\r\n","\r\n","        #When the image is (less than 256) x (higher than 256)\r\n","        elif image.shape[0] > this_height and image.shape[1] < this_width:\r\n","            new_height = int(round(this_width * image.shape[0] / image.shape[1]))\r\n","\r\n","            image = cv2.resize(image, (this_width, new_height), interpolation=cv2.INTER_AREA)\r\n","            mask = cv2.resize(mask, (this_width, new_height), interpolation=cv2.INTER_AREA)\r\n","\r\n","        #RESIZE WITH STRIDE\r\n","        # Output list of tuple(s) (image, mask)\r\n","        im_list = []\r\n","        im_h, im_w, im_d = image.shape\r\n","\r\n","        #When the image is just in the target size\r\n","        if image.shape[0] == this_height and image.shape[1] == this_width:\r\n","            return [(image, mask)]\r\n","\r\n","        #When both width and height are smaller than the target size\r\n","        if im_h < this_height + this_stride or im_w < this_width + this_stride:\r\n","\r\n","            #Divide sections of an image as\r\n","            #   1   2\r\n","            #   3   4\r\n","            window_1 = (image[0:this_height, 0:this_width, :], mask[0:this_height, 0:this_width])\r\n","            window_2 = (image[im_h - this_height:im_h, im_w - this_width:im_w, :], mask[im_h - this_height:im_h, im_w - this_width:im_w])\r\n","            window_3 = (image[0:this_height, im_w - this_width:im_w, :], mask[0:this_height, im_w - this_width:im_w])\r\n","            window_4 = (image[im_h - this_height:im_h, 0:this_width, :], mask[im_h - this_height:im_h, 0:this_width])\r\n","\r\n","            #4 separate magnified images\r\n","            im_list.append(window_1)\r\n","            im_list.append(window_2)\r\n","            im_list.append(window_3)\r\n","            im_list.append(window_4)\r\n","\r\n","        #When the image smaller width ratio than the target size\r\n","        elif im_h > this_height + this_stride and im_w < this_width + this_stride:\r\n","\r\n","            #For every gap count 256 cut the image into half(upper, lower)\r\n","            for x in range(0, im_w - this_stride, 256):\r\n","                window_1 = (image[0:this_height, x:x + this_width, :], mask[0:this_height, x:x + this_width])\r\n","                window_2 = (image[im_h - this_height:im_h, x:x + this_width, :], mask[im_h - this_height:im_h, x:x + this_width])\r\n","\r\n","                im_list.append(window_1)\r\n","                im_list.append(window_2)\r\n","\r\n","        #When the image has smaller height ratio than the target size\r\n","        elif im_h < this_height + this_stride and im_w > this_width + this_stride:\r\n","\r\n","            #Now we cut left to right\r\n","            for x in range(0, im_h - this_stride, 256):\r\n","                window_1 = (image[x:x + this_height, 0:this_width, :], mask[x:x + this_height, im_w - this_width: im_w])\r\n","                window_2 = (image[x:x + this_height, im_w - this_width: im_w, :], mask[x:x + this_height, im_w - this_width:im_w])\r\n","\r\n","                im_list.append(window_1)\r\n","                im_list.append(window_2)\r\n","\r\n","        #The rest of the case\r\n","        else:\r\n","            for x in range(0, im_w - this_stride, 256):\r\n","                for y in range(0, im_h - this_stride, 256):\r\n","                    w_cut = x + this_width\r\n","                    h_cut = y + this_height\r\n","\r\n","                    img_cut = image[y:h_cut, x:w_cut, :]\r\n","                    msk_cut = mask[y:h_cut, x:w_cut]\r\n","\r\n","                    if img_cut.shape[0] == this_height and img_cut.shape[1] == this_width:\r\n","                        pass\r\n","\r\n","                    elif img_cut.shape[0] < this_height and img_cut.shape[1] == this_width:\r\n","                        h_cut = im_h\r\n","                        y = h_cut - this_height\r\n","\r\n","                    elif img_cut.shape[0] == this_width and img_cut.shape[1] < this_width:\r\n","                        w_cut = im_w\r\n","                        x = w_cut - this_width\r\n","\r\n","                    else:\r\n","                        h_cut = im_h\r\n","                        y = h_cut - this_height\r\n","                        w_cut = im_w\r\n","                        x = w_cut - this_width\r\n","\r\n","                    img_cut = image[y:h_cut, x:w_cut, :]\r\n","                    msk_cut = mask[y:h_cut, x:w_cut]\r\n","\r\n","                    im_list.append((img_cut, msk_cut))\r\n","\r\n","        return im_list\r\n","\r\n","    \r\n","    #load_img()\r\n","    def load_imgs(self) -> typing.Tuple[list, list]:\r\n","\r\n","        images, masks = [], []\r\n","        imgs = os.listdir(\"/kaggle/input/bacteria-detection-with-darkfield-microscopy/images\")\r\n","\r\n","        for filename in imgs:\r\n","            img_path = \"/kaggle/input/bacteria-detection-with-darkfield-microscopy/images/{name}\".format(name = filename)\r\n","            msk_path = \"/kaggle/input/bacteria-detection-with-darkfield-microscopy/masks/{name}\".format(name = filename)\r\n","\r\n","            image = cv2.imread(img_path)\r\n","            mask = cv2.imread(msk_path, cv2.IMREAD_GRAYSCALE)\r\n","\r\n","            image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) / 255\r\n","\r\n","            images.append(image.astype(np.float32))\r\n","            masks.append(mask.astype(np.float32))\r\n","\r\n","        return images, masks\r\n","\r\n","    \r\n","    def sampling(self):\r\n","        final_imgs, final_msks = [], []\r\n","        ic = image_cutter()\r\n","        images, masks = ic.load_imgs()\r\n","\r\n","        for x in range(len(images)):\r\n","            image = images[x]\r\n","            mask = masks[x]\r\n","\r\n","            resizeds = ic.resizing(image, mask)\r\n","            for resized in resizeds:\r\n","                final_imgs.append(resized[0])\r\n","                final_msks.append(resized[1])\r\n","\r\n","        final_imgs = np.array(final_imgs)\r\n","        final_msks = np.array(final_msks)\r\n","\r\n","        num, h, w = final_msks.shape\r\n","        final_msks = final_msks.reshape((num, h, w, 1))\r\n","        \r\n","        values, counts = np.unique(final_msks.astype(np.int32), return_counts=True)\r\n","        weights = dict()\r\n","        normed_weights = [1 - (x/sum(counts)) for x in counts]\r\n","        normedWeights = torch.FloatTensor(normed_weights)\r\n","\r\n","        return final_imgs, final_msks, normedWeights"],"outputs":[],"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true}},{"cell_type":"code","execution_count":2,"source":["import torch\r\n","from torch import nn\r\n","import torch.nn.functional as F\r\n","import torch.optim as optim\r\n","\r\n","class Unet(nn.Module):\r\n","\r\n","    def __init__(self, in_channel, out_channel):\r\n","        super(Unet, self).__init__()\r\n","\r\n","        self.ft_extract1 = self.down_block(in_chan=in_channel, out_chan=32)\r\n","        self.max_pool1 = torch.nn.MaxPool2d(kernel_size=2, stride=2)\r\n","\r\n","        self.ft_extract2 = self.down_block(in_chan=32, out_chan=64)\r\n","        self.max_pool2 = torch.nn.MaxPool2d(kernel_size=2, stride=2)\r\n","\r\n","        self.ft_extract3 = self.down_block(in_chan=64, out_chan=128)\r\n","        self.max_pool3 = torch.nn.MaxPool2d(kernel_size=2, stride=2)\r\n","\r\n","        self.ft_extract4 = self.down_block(in_chan=128, out_chan=256)\r\n","        self.max_pool4 = torch.nn.MaxPool2d(kernel_size=2, stride=2)\r\n","\r\n","        self.bottleneck = torch.nn.Sequential(\r\n","            torch.nn.Conv2d(kernel_size=3, in_channels=256, out_channels=512, padding=1),\r\n","            torch.nn.ReLU(),\r\n","            torch.nn.BatchNorm2d(512),\r\n","            torch.nn.Conv2d(kernel_size=3, in_channels=512, out_channels=512, padding=1),\r\n","            torch.nn.ReLU(),\r\n","            torch.nn.BatchNorm2d(512),\r\n","            torch.nn.ConvTranspose2d(in_channels=512, out_channels=256, kernel_size=2, stride=2)\r\n","        )\r\n","\r\n","        self.up_sample3 = self.up_block(512, 256, 128)\r\n","        self.up_sample2 = self.up_block(256, 128, 64)\r\n","        self.up_sample1 = self.up_block(128, 64, 32)\r\n","        self.final_block = self.last_block(64, 32)\r\n","        self.conv = nn.Conv2d(32, 3, kernel_size=1)\r\n","\r\n","\r\n","    def down_block(self, in_chan, out_chan, kernel_size=3):\r\n","\r\n","        sequence = torch.nn.Sequential(\r\n","                    #First Layer\r\n","                        torch.nn.Conv2d(kernel_size=kernel_size, in_channels= in_chan, out_channels=out_chan, padding=1),\r\n","                        torch.nn.ReLU(),\r\n","                        torch.nn.BatchNorm2d(out_chan),\r\n","                    #Second Layer\r\n","                        torch.nn.Conv2d(kernel_size=kernel_size, in_channels= out_chan, out_channels=out_chan, padding=1),\r\n","                        torch.nn.ReLU(),\r\n","                        torch.nn.BatchNorm2d(out_chan),\r\n","                    )\r\n","\r\n","        return sequence\r\n","\r\n","    \r\n","    def up_block(self, in_chan, mid_chan, out_chan, kernel_size=3):\r\n","\r\n","        sequence = torch.nn.Sequential(\r\n","                        torch.nn.Conv2d(kernel_size= kernel_size, in_channels=in_chan, out_channels=mid_chan, padding=1),\r\n","                        torch.nn.ReLU(),\r\n","                        torch.nn.BatchNorm2d(mid_chan),\r\n","                        torch.nn.Conv2d(kernel_size=kernel_size, in_channels=mid_chan, out_channels=mid_chan, padding=1),\r\n","                        torch.nn.ReLU(),\r\n","                        torch.nn.BatchNorm2d(mid_chan),\r\n","                        torch.nn.ConvTranspose2d(in_channels=mid_chan, out_channels=out_chan, kernel_size=(2, 2), stride=(2, 2)),\r\n","        )\r\n","\r\n","        return sequence\r\n","\r\n","    \r\n","    def last_block(self, in_chan, out_chan, kernel_size=3):\r\n","\r\n","        sequence = torch.nn.Sequential(\r\n","            torch.nn.Conv2d(kernel_size=kernel_size, in_channels=in_chan, out_channels=out_chan, padding=1),\r\n","            torch.nn.ReLU(),\r\n","            torch.nn.BatchNorm2d(out_chan),\r\n","            torch.nn.Conv2d(kernel_size=kernel_size, in_channels=out_chan, out_channels=out_chan, padding=1),\r\n","            torch.nn.ReLU(),\r\n","            torch.nn.BatchNorm2d(out_chan),\r\n","        )\r\n","\r\n","        return sequence\r\n","\r\n","    \r\n","    def get_cov2d_pad(self,kernel_size, in_size, out_size, stride):\r\n","        padding = (out_size*stride - in_size + (kernel_size-1)) // 2\r\n","        return padding\r\n","\r\n","    \r\n","    def get_tranconv_pad(self, kernel_size, in_size, out_size, stride):\r\n","        padding = ((in_size - 1) * stride + (kernel_size-1) + 1 - out_size) // 2\r\n","        return padding\r\n","\r\n","\r\n","    def forward(self, inputs):\r\n","\r\n","        con_block1 = self.ft_extract1(inputs)\r\n","        con_pool1 = self.max_pool1(con_block1)\r\n","\r\n","        con_block2 = self.ft_extract2(con_pool1)\r\n","        con_pool2 = self.max_pool2(con_block2)\r\n","\r\n","        con_block3 = self.ft_extract3(con_pool2)\r\n","        con_pool3 = self.max_pool3(con_block3)\r\n","\r\n","        con_block4 = self.ft_extract4(con_pool3)\r\n","        con_pool4 = self.max_pool4(con_block4)\r\n","\r\n","        reflect_up = self.bottleneck(con_pool4)\r\n","\r\n","        concat_block4 = torch.cat((reflect_up, con_block4), dim=1)\r\n","        exp_block4 = self.up_sample3(concat_block4)\r\n","\r\n","        concat_block3 = torch.cat((exp_block4, con_block3), dim=1)\r\n","        exp_block3 = self.up_sample2(concat_block3)\r\n","\r\n","        concat_block2 = torch.cat((exp_block3, con_block2), dim=1)\r\n","        exp_block2 = self.up_sample1(concat_block2)\r\n","\r\n","        concat_block1 = torch.cat((exp_block2, con_block1), dim=1)\r\n","        final_block = self.final_block(concat_block1)\r\n","        conv_self = self.conv(final_block)\r\n","\r\n","        return conv_self"],"outputs":[],"metadata":{"trusted":true}},{"cell_type":"code","execution_count":3,"source":["import numpy as np\r\n","import torch\r\n","import torch.nn as nn\r\n","import torch.nn.functional as F\r\n","import tensorflow as tf\r\n","import tensorflow.keras.backend as K\r\n","\r\n","class DiceLoss(nn.Module):\r\n","\r\n","    def __init__(self):\r\n","        super(DiceLoss, self).__init__()\r\n","\r\n","    def forward(self, predicted, label, smooth=1):\r\n","        \r\n","        # print(predicted.size())\r\n","        # print(label.size())\r\n","\r\n","        pred = torch.softmax(predicted,dim=1)\r\n","\r\n","        pred = pred.reshape(-1)\r\n","        label = label.reshape(-1)\r\n","        \r\n","#         class_selectors = tf.cast(K.argmax(label, axis=1), tf.int32)\r\n","#         class_selectors = [K.equal(i, class_selectors) for i in range(len(weights_list))]\r\n","#         class_selectors = [K.cast(x, K.floatx()) for x in class_selectors]\r\n","#         weights = [sel * w for sel, w in zip(class_selectors, weights_list)]\r\n","#         weight_multiplier = weights[0]\r\n","#         for i in range(1, len(weights)):\r\n","#             weight_multiplier = weight_multiplier + weights[i]\r\n","\r\n","        intersection = (pred * label).sum()\r\n","        dice = (2.*intersection + smooth)/(pred.sum() + label.sum() + smooth)\r\n","\r\n","#         dice = dice * weight_multiplier\r\n","        \r\n","        return 1 - dice"],"outputs":[],"metadata":{"trusted":true}},{"cell_type":"code","execution_count":5,"source":["import numpy as np\r\n","import matplotlib.pyplot as plt\r\n","from tqdm import tqdm, trange, tnrange\r\n","import gc\r\n","import tensorflow as tf\r\n","# from Unet import Unet\r\n","# from loss import DiceLoss\r\n","# from Image_Cutter import image_cutter\r\n","import torch\r\n","import torch.nn as nn\r\n","import torch.optim as optim\r\n","import torch.nn.functional as F\r\n","!pip install torchsummary\r\n","from torchvision import transforms\r\n","from torchsummary import summary\r\n","import time\r\n","import copy\r\n","from pathlib import Path\r\n","\r\n","gc.collect()\r\n","\r\n","def main():\r\n","    # Initialising the model\r\n","    device = torch.device(\"cpu\" if not torch.cuda.is_available() else \"cuda:0\")\r\n","\r\n","    model = Unet(3, 3)\r\n","    model.to(device)\r\n","\r\n","    # summary of the UNET model and number of parameters\r\n","    summary(model, input_size=(3,256,256))\r\n","\r\n","    # ----------------------------------------------------------------------------------------\r\n","    # Training and Validation\r\n","\r\n","    batch_size = 5\r\n","    epochs = 25\r\n","    sample_batch_size = 300\r\n","    lr = 0.0005\r\n","\r\n","    #Loading the datasets\r\n","    #1700 Training set, 300 Validation set, 300 Test set\r\n","    x_train, x_valid, x_test, y_train, y_valid, y_test, weights = split_data()\r\n","    \r\n","    #Loss function class (initialised)\r\n","#     criterion = DiceLoss()\r\n","    weights = weights.to(device)\r\n","    criterion = nn.CrossEntropyLoss(weights)\r\n","\r\n","\r\n","    #optimiser Adam (initialised)\r\n","    optimizer = optim.Adam(model.parameters(), lr=lr)\r\n","\r\n","    #Training method\r\n","    #returns the best validation loss model and the weights of last model through all loss backpropagation\r\n","    trained_model, last_model_wts = train(model, x_train, x_valid, y_train, y_valid, batch_size, epochs, optimizer, criterion, weights, sample_batch_size, device)\r\n","\r\n","    #Best model weights saving path\r\n","    #Last model weights saving path\r\n","    weight_file = Path(\"/kaggle/working/iteration1.pt\")\r\n","    last_weight_file = Path(\"/kaggle/working/iteration_last1.pt\")\r\n","    \r\n","    #File name (iteration{file_num} by default)\r\n","    file_num = 1\r\n","\r\n","    #If the file name exsits, increment the file number by 1\r\n","    while weight_file.is_file():\r\n","        file_num += 1\r\n","        weight_file = Path(f\"/kaggle/working/iteration{file_num}\")\r\n","        last_weight_file = Path(f\"/kaggle/working/iteration_last{file_num}\")\r\n","\r\n","    #The best model weights saved\r\n","    torch.save(trained_model.state_dict(), weight_file)\r\n","    \r\n","    #Load the last model with the weights\r\n","    last_model = Unet(3,3)\r\n","    last_model.to(device)\r\n","    last_model.load_state_dict(last_model_wts)\r\n","    torch.save(last_model_wts, last_weight_file)\r\n","    \r\n","    gc.collect()\r\n","                                \r\n","    # ----------------------------------------------------------------------------------------\r\n","    # Prediction\r\n","\r\n","    #predict method\r\n","    #With the best model\r\n","    #3 lists of random original images, masks and the prediced mask are returned\r\n","    imgs, masks, preds = predict(x_test, y_test, optimizer, criterion, weights, device, model=trained_model)\r\n","    for t in range(3):\r\n","        plot_tensor_image(imgs[t], masks[t], preds[t])\r\n","        \r\n","    imgs, masks, preds = predict(x_test, y_test, optimizer, criterion, weights, device, model=trained_model)\r\n","    for t in range(3):\r\n","        plot_tensor_image(imgs[t], masks[t], preds[t])\r\n","        \r\n","        \r\n","def train(unet, x_train, x_valid, y_train, y_valid, batch_size, epochs, optimizer, criterion, weights, sample_batch_size,\r\n","          device):\r\n","\r\n","    print(\"Start Training a model\")\r\n","    # Default settings\r\n","    # batch_size = 2\r\n","    # epochs = 25\r\n","    # lr = 0.0005\r\n","    # sample_batch_size = 300\r\n","\r\n","    best_loss = 1e10\r\n","    best_model = copy.deepcopy(unet.state_dict())\r\n","\r\n","    sample_batch_number = 1\r\n","\r\n","    # 先从所有图片中每次取sample_batch_size张图片，然后对这些图片做epoch次计算损失更新参数，每次epoch又提取batch_size张图片进行计算损失\r\n","    for x in trange(0, x_train.shape[0], sample_batch_size, desc=\"1700 instances\", leave=True):\r\n","        data_dic = {\"train\": [x_train[x:x + sample_batch_size, :, :, :], y_train], \"valid\": [x_valid, y_valid]}\r\n","\r\n","        print(f\"Big Batch {sample_batch_number}\")\r\n","        print('-' * 15)\r\n","\r\n","        sample_batch_number += 1\r\n","        epoch_num = 1\r\n","        for epoch in trange(epochs, desc=f\"{epochs} Epochs\", leave=True):\r\n","            epoch_num += 1\r\n","            epoch_train_loss = 0\r\n","            epoch_valid_loss = 0\r\n","\r\n","            total_train_loss = 0\r\n","            total_valid_loss = 0\r\n","\r\n","            epoch_start_time = time.time()\r\n","\r\n","            train_loss = []\r\n","            valid_loss = []\r\n","\r\n","            for phase in [\"train\", \"valid\"]:\r\n","                if phase == \"train\":\r\n","                    unet.train()\r\n","                    print(f\"Training for epoch {epoch}\")\r\n","                else:\r\n","                    unet.eval()\r\n","                    print(f\"Validation for epoch {epoch}\")\r\n","\r\n","                data = data_dic[phase]\r\n","                xs, ys = data[0], data[1]   # images and masks\r\n","                \r\n","#                 ys = tf.keras.utils.to_categorical(ys).astype(np.float32)\r\n","                \r\n","                for i in range(0, xs.shape[0], batch_size):\r\n","\r\n","                    x = to_tensor(xs[i:i + batch_size, :, :, :])        # a batch of images\r\n","                    y_true = to_tensor(ys[i:i + batch_size, :, :, :])   # a batch of masks\r\n","\r\n","                    x, y_true = x.to(device), y_true.to(device)\r\n","\r\n","                    optimizer.zero_grad()\r\n","\r\n","                    with torch.set_grad_enabled(phase == \"train\"):\r\n","                        y_pred = unet(x)\r\n","                        \r\n","                        #Making the LongTensor (Batch_size, H, W) (Uncomment this for CEL)\r\n","                        y_true = y_true.squeeze(1)\r\n","                        \r\n","                        #CrossEntropyLoss\r\n","                        batch_loss = criterion(y_pred, y_true.long())\r\n","                        #DiceLoss\r\n","#                         batch_loss = criterion(y_pred, y_true)\r\n","\r\n","                        if phase == \"train\":\r\n","                            total_train_loss += batch_loss.item()\r\n","                            train_loss.append(batch_loss.item())\r\n","                            batch_loss.backward()\r\n","                            optimizer.step()\r\n","                            \r\n","                        if phase == \"valid\":\r\n","                            total_valid_loss += batch_loss.item()\r\n","                            valid_loss.append(batch_loss.item())\r\n","\r\n","                if phase == \"valid\":\r\n","                    epoch_train_loss = total_train_loss / i * batch_size\r\n","                    epoch_valid_loss = total_valid_loss / i * batch_size\r\n","                    if epoch_valid_loss < best_loss:\r\n","                        print(\"Saving the best validated model\")\r\n","                        best_loss = epoch_valid_loss\r\n","                        best_model = copy.deepcopy(unet.state_dict())\r\n","\r\n","            epoch_taken_time = time.time() - epoch_start_time\r\n","\r\n","            print(f\"Train loss: {epoch_train_loss},\")\r\n","            print(f\"Validation loss: {epoch_valid_loss},\")\r\n","            print(f\"Time taken for this epoch: {epoch_taken_time // 60:.0f}m {epoch_taken_time % 60:.0f}s\")\r\n","\r\n","        print(f\"{sample_batch_number} batch best validation loss:{best_loss}\")\r\n","        gc.collect()\r\n","\r\n","    print(f\"Best validation loss:{best_loss}\")\r\n","    last_model_wts = copy.deepcopy(unet.state_dict())\r\n","    unet.load_state_dict(best_model)\r\n","\r\n","    return unet, last_model_wts\r\n","\r\n","\r\n","def predict(x_test, y_test, optimizer, criterion, weights, device, weight_filenum=None, model=None):\r\n","    print(\"Start prediction on the test set\")\r\n","    if model == None:\r\n","        model = Unet(3, 3)\r\n","        model.to(device)\r\n","        model_weight_path = Path(f\"/kaggle/working/iteration{weight_filenum}.pt\")\r\n","        model.load_state_dict(torch.load(model_weight_path))\r\n","\r\n","    model.eval()\r\n","\r\n","    predicted_masks = []\r\n","    total_test_loss = 0\r\n","    best_test_loss = 1e8\r\n","\r\n","#     y_test = tf.keras.utils.to_categorical(y_test).astype(np.float32)\r\n","    for i in tqdm(range(x_test.shape[0])):\r\n","        x = to_tensor_pred(x_test[i, :, :, :])\r\n","        y_true = to_tensor_pred(y_test[i, :, :, :])\r\n","        \r\n","        x.unsqueeze_(0)\r\n","        #Comment out the following line for CEL LongTensor\r\n","#         y_true.unsqueeze_(0)\r\n","        x, y_true = x.to(device), y_true.to(device)\r\n","        \r\n","        optimizer.zero_grad()\r\n","\r\n","        with torch.set_grad_enabled(False):\r\n","            y_pred = model(x)\r\n","            predicted_masks.append(y_pred)\r\n","            \r\n","            #CrossEntropyLoss\r\n","            pred_loss = criterion(y_pred, y_true.long())\r\n","            #DiceLoss\r\n","#             pred_loss = criterion(y_pred, y_true)\r\n","            \r\n","            if(pred_loss < best_test_loss):\r\n","                best_test_loss = pred_loss\r\n","            total_test_loss += pred_loss.item()\r\n","    \r\n","    gc.collect()\r\n","    \r\n","    avg_test_loss = total_test_loss / x_test.shape[0]\r\n","\r\n","    print(f\"Test set loss: {avg_test_loss}\")\r\n","    print(f\"Best test loss: {best_test_loss}\")\r\n","    print(\"Prediction finished\")\r\n","    \r\n","    random_pred = np.random.permutation(len(predicted_masks))[:3]\r\n","    \r\n","    rt_imgs, rt_masks, rt_preds = [], [], []\r\n","    for i in random_pred:\r\n","        rt_imgs.append(x_test[i])\r\n","        rt_masks.append(y_test[i])\r\n","        rt_preds.append(predicted_masks[i])\r\n","        \r\n","    return rt_imgs, rt_masks, rt_preds\r\n","\r\n","\r\n","def split_data():\r\n","    datasets = image_cutter()\r\n","    images, masks, weights= datasets.sampling()\r\n","\r\n","    images = images[0:2300]\r\n","    masks = masks[0:2300]\r\n","\r\n","    random_indexing = np.random.permutation(images.shape[0])\r\n","    split_val_index = 1700\r\n","    split_test_index = 2000\r\n","    train_set, val_set, test_set = random_indexing[:split_val_index], random_indexing[\r\n","                                                                      split_val_index:split_test_index], random_indexing[\r\n","                                                                                         split_test_index:]\r\n","\r\n","    x_train, x_valid, x_test = images[train_set, :], images[val_set, :], images[test_set, :]\r\n","    y_train, y_valid, y_test = masks[train_set, :], masks[val_set, :], masks[test_set, :]\r\n","\r\n","    return x_train, x_valid, x_test, y_train, y_valid, y_test, weights\r\n","\r\n","\r\n","def plot_tensor_image(img, mask, pred):\r\n","    \r\n","    img = to_tensor_pred(img).permute(1,2,0)\r\n","    mask = to_tensor_pred(mask).permute(1,2,0)\r\n","    pred = pred.squeeze_(0).permute(1,2,0).detach().cpu()\r\n","    print(pred.shape)\r\n","    \r\n","    plt.subplot(1, 5, 1), plt.imshow(img)\r\n","    plt.subplot(1, 5, 2), plt.imshow(mask)\r\n","    plt.subplot(1, 5, 3), plt.imshow(mask, cmap = \"gray\")\r\n","    plt.subplot(1, 5, 4), plt.imshow(pred)\r\n","    plt.subplot(1, 5, 5), plt.imshow(pred, cmap = \"gray\")\r\n","    \r\n","    plt.show()\r\n","    \r\n","\r\n","def to_tensor(array_to_convert):\r\n","    array_to_convert = array_to_convert.transpose(0, 3, 1, 2)\r\n","    return torch.from_numpy(array_to_convert.astype(np.float32))\r\n","\r\n","\r\n","def to_tensor_pred(array_to_convert):\r\n","    array_to_convert = array_to_convert.transpose(2, 0, 1)\r\n","    return torch.from_numpy(array_to_convert.astype(np.float32))\r\n","\r\n","if __name__ == \"__main__\":\r\n","    main()"],"outputs":[{"output_type":"stream","name":"stdout","text":["Requirement already satisfied: torchsummary in /opt/conda/lib/python3.7/site-packages (1.5.1)\n","----------------------------------------------------------------\n","        Layer (type)               Output Shape         Param #\n","================================================================\n","            Conv2d-1         [-1, 32, 256, 256]             896\n","              ReLU-2         [-1, 32, 256, 256]               0\n","       BatchNorm2d-3         [-1, 32, 256, 256]              64\n","            Conv2d-4         [-1, 32, 256, 256]           9,248\n","              ReLU-5         [-1, 32, 256, 256]               0\n","       BatchNorm2d-6         [-1, 32, 256, 256]              64\n","         MaxPool2d-7         [-1, 32, 128, 128]               0\n","            Conv2d-8         [-1, 64, 128, 128]          18,496\n","              ReLU-9         [-1, 64, 128, 128]               0\n","      BatchNorm2d-10         [-1, 64, 128, 128]             128\n","           Conv2d-11         [-1, 64, 128, 128]          36,928\n","             ReLU-12         [-1, 64, 128, 128]               0\n","      BatchNorm2d-13         [-1, 64, 128, 128]             128\n","        MaxPool2d-14           [-1, 64, 64, 64]               0\n","           Conv2d-15          [-1, 128, 64, 64]          73,856\n","             ReLU-16          [-1, 128, 64, 64]               0\n","      BatchNorm2d-17          [-1, 128, 64, 64]             256\n","           Conv2d-18          [-1, 128, 64, 64]         147,584\n","             ReLU-19          [-1, 128, 64, 64]               0\n","      BatchNorm2d-20          [-1, 128, 64, 64]             256\n","        MaxPool2d-21          [-1, 128, 32, 32]               0\n","           Conv2d-22          [-1, 256, 32, 32]         295,168\n","             ReLU-23          [-1, 256, 32, 32]               0\n","      BatchNorm2d-24          [-1, 256, 32, 32]             512\n","           Conv2d-25          [-1, 256, 32, 32]         590,080\n","             ReLU-26          [-1, 256, 32, 32]               0\n","      BatchNorm2d-27          [-1, 256, 32, 32]             512\n","        MaxPool2d-28          [-1, 256, 16, 16]               0\n","           Conv2d-29          [-1, 512, 16, 16]       1,180,160\n","             ReLU-30          [-1, 512, 16, 16]               0\n","      BatchNorm2d-31          [-1, 512, 16, 16]           1,024\n","           Conv2d-32          [-1, 512, 16, 16]       2,359,808\n","             ReLU-33          [-1, 512, 16, 16]               0\n","      BatchNorm2d-34          [-1, 512, 16, 16]           1,024\n","  ConvTranspose2d-35          [-1, 256, 32, 32]         524,544\n","           Conv2d-36          [-1, 256, 32, 32]       1,179,904\n","             ReLU-37          [-1, 256, 32, 32]               0\n","      BatchNorm2d-38          [-1, 256, 32, 32]             512\n","           Conv2d-39          [-1, 256, 32, 32]         590,080\n","             ReLU-40          [-1, 256, 32, 32]               0\n","      BatchNorm2d-41          [-1, 256, 32, 32]             512\n","  ConvTranspose2d-42          [-1, 128, 64, 64]         131,200\n","           Conv2d-43          [-1, 128, 64, 64]         295,040\n","             ReLU-44          [-1, 128, 64, 64]               0\n","      BatchNorm2d-45          [-1, 128, 64, 64]             256\n","           Conv2d-46          [-1, 128, 64, 64]         147,584\n","             ReLU-47          [-1, 128, 64, 64]               0\n","      BatchNorm2d-48          [-1, 128, 64, 64]             256\n","  ConvTranspose2d-49         [-1, 64, 128, 128]          32,832\n","           Conv2d-50         [-1, 64, 128, 128]          73,792\n","             ReLU-51         [-1, 64, 128, 128]               0\n","      BatchNorm2d-52         [-1, 64, 128, 128]             128\n","           Conv2d-53         [-1, 64, 128, 128]          36,928\n","             ReLU-54         [-1, 64, 128, 128]               0\n","      BatchNorm2d-55         [-1, 64, 128, 128]             128\n","  ConvTranspose2d-56         [-1, 32, 256, 256]           8,224\n","           Conv2d-57         [-1, 32, 256, 256]          18,464\n","             ReLU-58         [-1, 32, 256, 256]               0\n","      BatchNorm2d-59         [-1, 32, 256, 256]              64\n","           Conv2d-60         [-1, 32, 256, 256]           9,248\n","             ReLU-61         [-1, 32, 256, 256]               0\n","      BatchNorm2d-62         [-1, 32, 256, 256]              64\n","           Conv2d-63          [-1, 3, 256, 256]              99\n","================================================================\n","Total params: 7,766,051\n","Trainable params: 7,766,051\n","Non-trainable params: 0\n","----------------------------------------------------------------\n","Input size (MB): 0.75\n","Forward/backward pass size (MB): 405.00\n","Params size (MB): 29.63\n","Estimated Total Size (MB): 435.38\n","----------------------------------------------------------------\n"]},{"output_type":"stream","name":"stderr","text":["1700 instances:   0%|          | 0/6 [00:00<?, ?it/s]\n","25 Epochs:   0%|          | 0/25 [00:00<?, ?it/s]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Start Training a model\n","Big Batch 1\n","---------------\n","Training for epoch 0\n","Validation for epoch 0\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:   4%|▍         | 1/25 [00:22<09:11, 22.97s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Saving the best validated model\n","Train loss: 0.7658460468558942,\n","Validation loss: 0.6864354039652873,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 1\n","Validation for epoch 1\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:   8%|▊         | 2/25 [00:45<08:48, 22.96s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Saving the best validated model\n","Train loss: 0.6473201038473743,\n","Validation loss: 0.6442849499694371,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 2\n","Validation for epoch 2\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  12%|█▏        | 3/25 [01:08<08:25, 22.96s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Saving the best validated model\n","Train loss: 0.5830942877268387,\n","Validation loss: 0.5571805471080845,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 3\n","Validation for epoch 3\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  16%|█▌        | 4/25 [01:31<08:02, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Saving the best validated model\n","Train loss: 0.5286910634929851,\n","Validation loss: 0.48041881494602917,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 4\n","Validation for epoch 4\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  20%|██        | 5/25 [01:54<07:39, 22.97s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Saving the best validated model\n","Train loss: 0.4809414037203385,\n","Validation loss: 0.4494575049917577,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 5\n","Validation for epoch 5\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  24%|██▍       | 6/25 [02:17<07:16, 22.97s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.436949661727679,\n","Validation loss: 0.45653519337460147,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 6\n","Validation for epoch 6\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  28%|██▊       | 7/25 [02:40<06:54, 23.02s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Saving the best validated model\n","Train loss: 0.3937486781407211,\n","Validation loss: 0.38733477233830144,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 7\n","Validation for epoch 7\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  32%|███▏      | 8/25 [03:03<06:30, 22.99s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Saving the best validated model\n","Train loss: 0.3629730316036839,\n","Validation loss: 0.3657798729205536,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 8\n","Validation for epoch 8\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  36%|███▌      | 9/25 [03:26<06:07, 22.98s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Saving the best validated model\n","Train loss: 0.33978057993670646,\n","Validation loss: 0.3573522322763831,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 9\n","Validation for epoch 9\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  40%|████      | 10/25 [03:49<05:44, 22.97s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Saving the best validated model\n","Train loss: 0.3033490044585729,\n","Validation loss: 0.32187508678032184,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 10\n","Validation for epoch 10\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  44%|████▍     | 11/25 [04:12<05:21, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.26725266318199997,\n","Validation loss: 0.3221566813477015,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 11\n","Validation for epoch 11\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  48%|████▊     | 12/25 [04:35<04:58, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Saving the best validated model\n","Train loss: 0.24258788599301193,\n","Validation loss: 0.3023180282216961,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 12\n","Validation for epoch 12\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  52%|█████▏    | 13/25 [04:58<04:35, 22.96s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.2251044843914145,\n","Validation loss: 0.3269839006460319,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 13\n","Validation for epoch 13\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  56%|█████▌    | 14/25 [05:21<04:12, 22.96s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Saving the best validated model\n","Train loss: 0.20821924621270874,\n","Validation loss: 0.2750346871503329,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 14\n","Validation for epoch 14\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  60%|██████    | 15/25 [05:44<03:49, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.18983867170952134,\n","Validation loss: 0.3175869212817337,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 15\n","Validation for epoch 15\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  64%|██████▍   | 16/25 [06:07<03:26, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.18717984589984862,\n","Validation loss: 0.3549477589332451,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 16\n","Validation for epoch 16\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  68%|██████▊   | 17/25 [06:30<03:03, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.21725795291743036,\n","Validation loss: 0.2959149030305571,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 17\n","Validation for epoch 17\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  72%|███████▏  | 18/25 [06:53<02:40, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.19429289031836944,\n","Validation loss: 0.3195617848028571,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 18\n","Validation for epoch 18\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  76%|███████▌  | 19/25 [07:16<02:17, 22.97s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Saving the best validated model\n","Train loss: 0.1755828912985527,\n","Validation loss: 0.26032557868856493,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 19\n","Validation for epoch 19\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  80%|████████  | 20/25 [07:39<01:54, 22.96s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Saving the best validated model\n","Train loss: 0.1540320216346595,\n","Validation loss: 0.2524486435419422,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 20\n","Validation for epoch 20\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  84%|████████▍ | 21/25 [08:02<01:31, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Saving the best validated model\n","Train loss: 0.14562158905348535,\n","Validation loss: 0.24299122241594023,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 21\n","Validation for epoch 21\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  88%|████████▊ | 22/25 [08:25<01:08, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Saving the best validated model\n","Train loss: 0.12709475517020388,\n","Validation loss: 0.23635294023206677,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 22\n","Validation for epoch 22\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  92%|█████████▏| 23/25 [08:48<00:45, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.11798775581232572,\n","Validation loss: 0.24145578479362745,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 23\n","Validation for epoch 23\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  96%|█████████▌| 24/25 [09:10<00:22, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.11309209346013553,\n","Validation loss: 0.2710426428307921,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 24\n","Validation for epoch 24\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs: 100%|██████████| 25/25 [09:33<00:00, 22.96s/it]\u001b[A\n","1700 instances:  17%|█▋        | 1/6 [09:34<47:50, 574.05s/it]\n","25 Epochs:   0%|          | 0/25 [00:00<?, ?it/s]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Saving the best validated model\n","Train loss: 0.10473184110754627,\n","Validation loss: 0.2353648052124654,\n","Time taken for this epoch: 0m 23s\n","2 batch best validation loss:0.2353648052124654\n","Big Batch 2\n","---------------\n","Training for epoch 0\n","Validation for epoch 0\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:   4%|▍         | 1/25 [00:22<09:09, 22.90s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 1.509273942244255,\n","Validation loss: 1.0548328686568695,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 1\n","Validation for epoch 1\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:   8%|▊         | 2/25 [00:45<08:47, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 1.1471482000108493,\n","Validation loss: 0.9926055538452278,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 2\n","Validation for epoch 2\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  12%|█▏        | 3/25 [01:08<08:24, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 1.0567534909409992,\n","Validation loss: 1.0097692002684382,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 3\n","Validation for epoch 3\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  16%|█▌        | 4/25 [01:31<08:01, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 1.0065421795440932,\n","Validation loss: 1.0157286888462003,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 4\n","Validation for epoch 4\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  20%|██        | 5/25 [01:54<07:38, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.9912994372642646,\n","Validation loss: 1.0321417966131436,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 5\n","Validation for epoch 5\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  24%|██▍       | 6/25 [02:17<07:15, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.9757798051430007,\n","Validation loss: 1.027831204866959,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 6\n","Validation for epoch 6\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  28%|██▊       | 7/25 [02:40<06:52, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.9614401257644266,\n","Validation loss: 1.0162430233874562,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 7\n","Validation for epoch 7\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  32%|███▏      | 8/25 [03:03<06:29, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.9492032628948406,\n","Validation loss: 1.0082904070110645,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 8\n","Validation for epoch 8\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  36%|███▌      | 9/25 [03:26<06:06, 22.92s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.9419201986264374,\n","Validation loss: 1.0304954011561507,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 9\n","Validation for epoch 9\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  40%|████      | 10/25 [03:49<05:43, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.9388521364179708,\n","Validation loss: 1.0507558190216453,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 10\n","Validation for epoch 10\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  44%|████▍     | 11/25 [04:12<05:21, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.9287739234455561,\n","Validation loss: 0.9671330219608243,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 11\n","Validation for epoch 11\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  48%|████▊     | 12/25 [04:35<04:58, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.9164908275765887,\n","Validation loss: 0.9729421148865911,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 12\n","Validation for epoch 12\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  52%|█████▏    | 13/25 [04:58<04:35, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.9091337848517854,\n","Validation loss: 0.960379095400794,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 13\n","Validation for epoch 13\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  56%|█████▌    | 14/25 [05:21<04:12, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8995176038499606,\n","Validation loss: 0.9578970630290145,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 14\n","Validation for epoch 14\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  60%|██████    | 15/25 [05:44<03:49, 22.96s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8919161982455497,\n","Validation loss: 0.9514399968971641,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 15\n","Validation for epoch 15\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  64%|██████▍   | 16/25 [06:07<03:26, 22.96s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8802999662140669,\n","Validation loss: 0.9432874483577276,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 16\n","Validation for epoch 16\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  68%|██████▊   | 17/25 [06:30<03:03, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8805029048758038,\n","Validation loss: 0.9850198778055481,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 17\n","Validation for epoch 17\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  72%|███████▏  | 18/25 [06:52<02:40, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8696096802161912,\n","Validation loss: 0.9503633460756076,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 18\n","Validation for epoch 18\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  76%|███████▌  | 19/25 [07:15<02:17, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8545602711580568,\n","Validation loss: 0.9604168544381352,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 19\n","Validation for epoch 19\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  80%|████████  | 20/25 [07:38<01:54, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.83705425363476,\n","Validation loss: 0.9549208081374734,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 20\n","Validation for epoch 20\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  84%|████████▍ | 21/25 [08:01<01:31, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8219438467995595,\n","Validation loss: 0.9499692189491402,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 21\n","Validation for epoch 21\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  88%|████████▊ | 22/25 [08:24<01:08, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8177286780486672,\n","Validation loss: 0.9916414992283966,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 22\n","Validation for epoch 22\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  92%|█████████▏| 23/25 [08:47<00:45, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8117033768508395,\n","Validation loss: 0.9950396216521828,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 23\n","Validation for epoch 23\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  96%|█████████▌| 24/25 [09:10<00:22, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.7714526107755758,\n","Validation loss: 1.0397268170017306,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 24\n","Validation for epoch 24\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs: 100%|██████████| 25/25 [09:33<00:00, 22.94s/it]\u001b[A\n","1700 instances:  33%|███▎      | 2/6 [19:07<38:15, 573.87s/it]"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.7662275393130416,\n","Validation loss: 1.0128081966254672,\n","Time taken for this epoch: 0m 23s\n","3 batch best validation loss:0.2353648052124654\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:   0%|          | 0/25 [00:00<?, ?it/s]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Big Batch 3\n","---------------\n","Training for epoch 0\n","Validation for epoch 0\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:   4%|▍         | 1/25 [00:22<09:10, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.931818593356569,\n","Validation loss: 0.8660748590857295,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 1\n","Validation for epoch 1\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:   8%|▊         | 2/25 [00:45<08:47, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8864096201072305,\n","Validation loss: 0.8571182378267838,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 2\n","Validation for epoch 2\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  12%|█▏        | 3/25 [01:08<08:24, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8759473683470387,\n","Validation loss: 0.8529048309487812,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 3\n","Validation for epoch 3\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  16%|█▌        | 4/25 [01:31<08:01, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8629968752295283,\n","Validation loss: 0.8599780494883908,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 4\n","Validation for epoch 4\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  20%|██        | 5/25 [01:54<07:38, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8423892865746708,\n","Validation loss: 0.8868898304842286,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 5\n","Validation for epoch 5\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  24%|██▍       | 6/25 [02:17<07:15, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8241733191377025,\n","Validation loss: 0.9221494975736586,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 6\n","Validation for epoch 6\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  28%|██▊       | 7/25 [02:40<06:52, 22.92s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.7979755250074095,\n","Validation loss: 0.97612369262566,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 7\n","Validation for epoch 7\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  32%|███▏      | 8/25 [03:03<06:29, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.7894448344990358,\n","Validation loss: 0.923935998294313,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 8\n","Validation for epoch 8\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  36%|███▌      | 9/25 [03:26<06:06, 22.92s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.7786681470224412,\n","Validation loss: 1.080238163471222,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 9\n","Validation for epoch 9\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  40%|████      | 10/25 [03:49<05:43, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.7528382842823611,\n","Validation loss: 1.1236490425416978,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 10\n","Validation for epoch 10\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  44%|████▍     | 11/25 [04:12<05:21, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.7336895334518562,\n","Validation loss: 1.1913267707420607,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 11\n","Validation for epoch 11\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  48%|████▊     | 12/25 [04:35<04:58, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.7170399568848691,\n","Validation loss: 1.137160889172958,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 12\n","Validation for epoch 12\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  52%|█████▏    | 13/25 [04:58<04:35, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.6902303660320024,\n","Validation loss: 0.9811573493278634,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 13\n","Validation for epoch 13\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  56%|█████▌    | 14/25 [05:21<04:12, 22.96s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.6751373248585201,\n","Validation loss: 1.0955897822218426,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 14\n","Validation for epoch 14\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  60%|██████    | 15/25 [05:44<03:49, 22.96s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.6647385858883292,\n","Validation loss: 1.096615881232892,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 15\n","Validation for epoch 15\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  64%|██████▍   | 16/25 [06:07<03:26, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.6403249628463035,\n","Validation loss: 1.0598684771586273,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 16\n","Validation for epoch 16\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  68%|██████▊   | 17/25 [06:29<03:03, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.6191741273564808,\n","Validation loss: 1.1744624679371463,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 17\n","Validation for epoch 17\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  72%|███████▏  | 18/25 [06:52<02:40, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.6256510100122226,\n","Validation loss: 1.2096854377601105,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 18\n","Validation for epoch 18\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  76%|███████▌  | 19/25 [07:15<02:17, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.6115963590347161,\n","Validation loss: 1.1039464665671526,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 19\n","Validation for epoch 19\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  80%|████████  | 20/25 [07:38<01:54, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.556244251081499,\n","Validation loss: 1.1464049816131592,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 20\n","Validation for epoch 20\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  84%|████████▍ | 21/25 [08:01<01:31, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.5236640739238868,\n","Validation loss: 1.117304601911771,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 21\n","Validation for epoch 21\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  88%|████████▊ | 22/25 [08:24<01:08, 22.92s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.49989112655995255,\n","Validation loss: 1.204525272724992,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 22\n","Validation for epoch 22\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  92%|█████████▏| 23/25 [08:47<00:45, 22.92s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.4968393874370446,\n","Validation loss: 1.1630324963795937,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 23\n","Validation for epoch 23\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  96%|█████████▌| 24/25 [09:10<00:22, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.5088010627334401,\n","Validation loss: 1.031397153260344,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 24\n","Validation for epoch 24\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs: 100%|██████████| 25/25 [09:33<00:00, 22.94s/it]\u001b[A\n","1700 instances:  50%|█████     | 3/6 [28:41<28:41, 573.75s/it]\n","25 Epochs:   0%|          | 0/25 [00:00<?, ?it/s]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.47194275108434386,\n","Validation loss: 1.148364768189899,\n","Time taken for this epoch: 0m 23s\n","4 batch best validation loss:0.2353648052124654\n","Big Batch 4\n","---------------\n","Training for epoch 0\n","Validation for epoch 0\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:   4%|▍         | 1/25 [00:22<09:10, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 1.0013977208379972,\n","Validation loss: 0.9186740467103861,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 1\n","Validation for epoch 1\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:   8%|▊         | 2/25 [00:45<08:47, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8910764698254859,\n","Validation loss: 0.905790944220656,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 2\n","Validation for epoch 2\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  12%|█▏        | 3/25 [01:08<08:25, 22.96s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8483457817869672,\n","Validation loss: 0.904968499127081,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 3\n","Validation for epoch 3\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  16%|█▌        | 4/25 [01:31<08:01, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.7859302122714156,\n","Validation loss: 0.9261139772706113,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 4\n","Validation for epoch 4\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  20%|██        | 5/25 [01:54<07:38, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.7195951170840507,\n","Validation loss: 0.9638390763331268,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 5\n","Validation for epoch 5\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  24%|██▍       | 6/25 [02:17<07:16, 22.97s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.6783820158344205,\n","Validation loss: 1.0831041265342196,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 6\n","Validation for epoch 6\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  28%|██▊       | 7/25 [02:40<06:53, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.6617073911731526,\n","Validation loss: 1.1258851158416876,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 7\n","Validation for epoch 7\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  32%|███▏      | 8/25 [03:03<06:29, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.6416598669553207,\n","Validation loss: 1.0898715106107422,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 8\n","Validation for epoch 8\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  36%|███▌      | 9/25 [03:26<06:06, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.6130587099972418,\n","Validation loss: 1.1875394451416146,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 9\n","Validation for epoch 9\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  40%|████      | 10/25 [03:49<05:44, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.5770576788207231,\n","Validation loss: 1.2553267155663441,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 10\n","Validation for epoch 10\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  44%|████▍     | 11/25 [04:12<05:21, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.5512453115592568,\n","Validation loss: 1.2649410457934362,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 11\n","Validation for epoch 11\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  48%|████▊     | 12/25 [04:35<04:58, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.5222471624107684,\n","Validation loss: 1.3208061618320013,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 12\n","Validation for epoch 12\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  52%|█████▏    | 13/25 [04:58<04:35, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.4895506614850739,\n","Validation loss: 1.1916545417349216,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 13\n","Validation for epoch 13\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  56%|█████▌    | 14/25 [05:21<04:12, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.4950041882062362,\n","Validation loss: 1.3155415108648396,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 14\n","Validation for epoch 14\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  60%|██████    | 15/25 [05:44<03:49, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.47473667435726874,\n","Validation loss: 1.321459090305587,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 15\n","Validation for epoch 15\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  64%|██████▍   | 16/25 [06:07<03:26, 22.96s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.4488170414657916,\n","Validation loss: 1.5429234949208923,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 16\n","Validation for epoch 16\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  68%|██████▊   | 17/25 [06:30<03:03, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.42695415727162767,\n","Validation loss: 1.3710983971417963,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 17\n","Validation for epoch 17\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  72%|███████▏  | 18/25 [06:53<02:40, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.41875979253801254,\n","Validation loss: 1.4169010024959758,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 18\n","Validation for epoch 18\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  76%|███████▌  | 19/25 [07:16<02:17, 22.96s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.40831681858685054,\n","Validation loss: 1.5257784875772766,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 19\n","Validation for epoch 19\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  80%|████████  | 20/25 [07:38<01:54, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.4023656148021504,\n","Validation loss: 1.470075421414133,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 20\n","Validation for epoch 20\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  84%|████████▍ | 21/25 [08:01<01:31, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.38646609197228643,\n","Validation loss: 1.408730830176402,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 21\n","Validation for epoch 21\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  88%|████████▊ | 22/25 [08:24<01:08, 22.96s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.37651144447973217,\n","Validation loss: 1.4588553511490256,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 22\n","Validation for epoch 22\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  92%|█████████▏| 23/25 [08:47<00:45, 22.96s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.35943046262708767,\n","Validation loss: 1.5110810752642356,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 23\n","Validation for epoch 23\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  96%|█████████▌| 24/25 [09:10<00:22, 22.96s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.33445976346226064,\n","Validation loss: 1.6226461428706929,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 24\n","Validation for epoch 24\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs: 100%|██████████| 25/25 [09:33<00:00, 22.95s/it]\u001b[A\n","1700 instances:  67%|██████▋   | 4/6 [38:15<19:07, 573.83s/it]\n","25 Epochs:   0%|          | 0/25 [00:00<?, ?it/s]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.322749749331151,\n","Validation loss: 1.6487886380341092,\n","Time taken for this epoch: 0m 23s\n","5 batch best validation loss:0.2353648052124654\n","Big Batch 5\n","---------------\n","Training for epoch 0\n","Validation for epoch 0\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:   4%|▍         | 1/25 [00:22<09:10, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 1.1162642715340954,\n","Validation loss: 0.7851313115176508,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 1\n","Validation for epoch 1\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:   8%|▊         | 2/25 [00:45<08:47, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.9127832923905324,\n","Validation loss: 0.8201996633561991,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 2\n","Validation for epoch 2\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  12%|█▏        | 3/25 [01:08<08:24, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8354808577036453,\n","Validation loss: 0.8973795226064779,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 3\n","Validation for epoch 3\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  16%|█▌        | 4/25 [01:31<08:01, 22.95s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.7421896912283816,\n","Validation loss: 0.9649388052649417,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 4\n","Validation for epoch 4\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  20%|██        | 5/25 [01:54<07:38, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.6418280571194018,\n","Validation loss: 1.0332776358572102,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 5\n","Validation for epoch 5\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  24%|██▍       | 6/25 [02:17<07:15, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.5744708180427551,\n","Validation loss: 1.013736171237493,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 6\n","Validation for epoch 6\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  28%|██▊       | 7/25 [02:40<06:52, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.5207175854909217,\n","Validation loss: 1.0127063827999567,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 7\n","Validation for epoch 7\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  32%|███▏      | 8/25 [03:03<06:29, 22.92s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.4902086227627124,\n","Validation loss: 1.1940845892590992,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 8\n","Validation for epoch 8\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  36%|███▌      | 9/25 [03:26<06:06, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.463105708613234,\n","Validation loss: 1.1658693749015614,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 9\n","Validation for epoch 9\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  40%|████      | 10/25 [03:49<05:44, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.4403454466896542,\n","Validation loss: 1.301999399722633,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 10\n","Validation for epoch 10\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  44%|████▍     | 11/25 [04:12<05:21, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.4300287057787685,\n","Validation loss: 1.2126022784386652,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 11\n","Validation for epoch 11\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  48%|████▊     | 12/25 [04:35<04:58, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.40835028255389905,\n","Validation loss: 1.2313537713834795,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 12\n","Validation for epoch 12\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  52%|█████▏    | 13/25 [04:58<04:35, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.3841811744338375,\n","Validation loss: 1.3170254432548911,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 13\n","Validation for epoch 13\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  56%|█████▌    | 14/25 [05:21<04:12, 22.92s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.3709422971232463,\n","Validation loss: 1.2868742680145524,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 14\n","Validation for epoch 14\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  60%|██████    | 15/25 [05:43<03:49, 22.92s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.34882182817337876,\n","Validation loss: 1.384182525388265,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 15\n","Validation for epoch 15\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  64%|██████▍   | 16/25 [06:06<03:26, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.32563723446959153,\n","Validation loss: 1.4168162174144032,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 16\n","Validation for epoch 16\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  68%|██████▊   | 17/25 [06:29<03:03, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.31573470871327286,\n","Validation loss: 1.4087993805691348,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 17\n","Validation for epoch 17\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  72%|███████▏  | 18/25 [06:52<02:40, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.3014259393942558,\n","Validation loss: 1.2582187965764837,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 18\n","Validation for epoch 18\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  76%|███████▌  | 19/25 [07:15<02:17, 22.92s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.28720025895005563,\n","Validation loss: 1.4162394995406522,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 19\n","Validation for epoch 19\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  80%|████████  | 20/25 [07:38<01:54, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.27474792301654816,\n","Validation loss: 1.4863248255293249,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 20\n","Validation for epoch 20\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  84%|████████▍ | 21/25 [08:01<01:31, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.26527421807838697,\n","Validation loss: 1.4643272989887302,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 21\n","Validation for epoch 21\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  88%|████████▊ | 22/25 [08:24<01:08, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.2512820330211672,\n","Validation loss: 1.490156613164029,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 22\n","Validation for epoch 22\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  92%|█████████▏| 23/25 [08:47<00:45, 22.93s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.24238300096180482,\n","Validation loss: 1.4331586017447004,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 23\n","Validation for epoch 23\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  96%|█████████▌| 24/25 [09:10<00:22, 22.94s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.22501503878225715,\n","Validation loss: 1.5313351305864624,\n","Time taken for this epoch: 0m 23s\n","Training for epoch 24\n","Validation for epoch 24\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs: 100%|██████████| 25/25 [09:33<00:00, 22.93s/it]\u001b[A\n","1700 instances:  83%|████████▎ | 5/6 [47:48<09:33, 573.73s/it]\n","25 Epochs:   0%|          | 0/25 [00:00<?, ?it/s]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.22776567658125343,\n","Validation loss: 1.6535068821098844,\n","Time taken for this epoch: 0m 23s\n","6 batch best validation loss:0.2353648052124654\n","Big Batch 6\n","---------------\n","Training for epoch 0\n","Validation for epoch 0\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:   4%|▍         | 1/25 [00:16<06:36, 16.52s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.8545059258654966,\n","Validation loss: 1.2066532969474792,\n","Time taken for this epoch: 0m 17s\n","Training for epoch 1\n","Validation for epoch 1\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:   8%|▊         | 2/25 [00:33<06:20, 16.54s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.6210033398563579,\n","Validation loss: 0.9514293509014582,\n","Time taken for this epoch: 0m 17s\n","Training for epoch 2\n","Validation for epoch 2\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  12%|█▏        | 3/25 [00:49<06:03, 16.52s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.5350820694939564,\n","Validation loss: 0.9522148259615494,\n","Time taken for this epoch: 0m 16s\n","Training for epoch 3\n","Validation for epoch 3\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  16%|█▌        | 4/25 [01:06<05:47, 16.53s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.4405738943714207,\n","Validation loss: 1.0276318344019226,\n","Time taken for this epoch: 0m 17s\n","Training for epoch 4\n","Validation for epoch 4\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  20%|██        | 5/25 [01:22<05:30, 16.51s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.36235580403926004,\n","Validation loss: 1.1581086920479597,\n","Time taken for this epoch: 0m 16s\n","Training for epoch 5\n","Validation for epoch 5\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  24%|██▍       | 6/25 [01:39<05:13, 16.52s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.3323048716884548,\n","Validation loss: 1.0333215533676794,\n","Time taken for this epoch: 0m 17s\n","Training for epoch 6\n","Validation for epoch 6\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  28%|██▊       | 7/25 [01:55<04:57, 16.51s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.31509955101094,\n","Validation loss: 1.1068513150942527,\n","Time taken for this epoch: 0m 16s\n","Training for epoch 7\n","Validation for epoch 7\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  32%|███▏      | 8/25 [02:12<04:40, 16.52s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.283005103721457,\n","Validation loss: 1.1329570382328356,\n","Time taken for this epoch: 0m 17s\n","Training for epoch 8\n","Validation for epoch 8\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  36%|███▌      | 9/25 [02:28<04:24, 16.52s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.25719026589797717,\n","Validation loss: 1.2538524265006437,\n","Time taken for this epoch: 0m 17s\n","Training for epoch 9\n","Validation for epoch 9\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  40%|████      | 10/25 [02:45<04:07, 16.52s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.24173232054306287,\n","Validation loss: 1.188469475608761,\n","Time taken for this epoch: 0m 17s\n","Training for epoch 10\n","Validation for epoch 10\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  44%|████▍     | 11/25 [03:01<03:51, 16.51s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.22052054056676768,\n","Validation loss: 1.3094491488852744,\n","Time taken for this epoch: 0m 16s\n","Training for epoch 11\n","Validation for epoch 11\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  48%|████▊     | 12/25 [03:18<03:34, 16.52s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.19290247988902917,\n","Validation loss: 1.3819185202404605,\n","Time taken for this epoch: 0m 17s\n","Training for epoch 12\n","Validation for epoch 12\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  52%|█████▏    | 13/25 [03:34<03:18, 16.51s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.17702063412989602,\n","Validation loss: 1.4109869690264687,\n","Time taken for this epoch: 0m 16s\n","Training for epoch 13\n","Validation for epoch 13\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  64%|██████▍   | 16/25 [04:24<02:28, 16.52s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.152584797371242,\n","Validation loss: 1.5755526246660847,\n","Time taken for this epoch: 0m 17s\n","Training for epoch 16\n","Validation for epoch 16\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  68%|██████▊   | 17/25 [04:40<02:12, 16.51s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.14929093256340187,\n","Validation loss: 1.505556536427999,\n","Time taken for this epoch: 0m 17s\n","Training for epoch 17\n","Validation for epoch 17\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  72%|███████▏  | 18/25 [04:57<01:55, 16.53s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.1393564998850984,\n","Validation loss: 1.5534118924100522,\n","Time taken for this epoch: 0m 17s\n","Training for epoch 18\n","Validation for epoch 18\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  76%|███████▌  | 19/25 [05:13<01:39, 16.53s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.12569131474878828,\n","Validation loss: 1.683063538397773,\n","Time taken for this epoch: 0m 17s\n","Training for epoch 19\n","Validation for epoch 19\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  80%|████████  | 20/25 [05:30<01:22, 16.53s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.11915067191851342,\n","Validation loss: 1.5652591621471665,\n","Time taken for this epoch: 0m 17s\n","Training for epoch 20\n","Validation for epoch 20\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  84%|████████▍ | 21/25 [05:46<01:06, 16.51s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.11553551534474905,\n","Validation loss: 1.5942912394717588,\n","Time taken for this epoch: 0m 16s\n","Training for epoch 21\n","Validation for epoch 21\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  88%|████████▊ | 22/25 [06:03<00:49, 16.52s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.10890007258976919,\n","Validation loss: 1.6484133166781925,\n","Time taken for this epoch: 0m 17s\n","Training for epoch 22\n","Validation for epoch 22\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  92%|█████████▏| 23/25 [06:19<00:33, 16.52s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.10405985000780074,\n","Validation loss: 1.7305179389856629,\n","Time taken for this epoch: 0m 17s\n","Training for epoch 23\n","Validation for epoch 23\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs:  96%|█████████▌| 24/25 [06:36<00:16, 16.52s/it]\u001b[A"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.10098012947177482,\n","Validation loss: 1.635659918946735,\n","Time taken for this epoch: 0m 17s\n","Training for epoch 24\n","Validation for epoch 24\n"]},{"output_type":"stream","name":"stderr","text":["\n","25 Epochs: 100%|██████████| 25/25 [06:53<00:00, 16.52s/it]\u001b[A\n","1700 instances: 100%|██████████| 6/6 [54:42<00:00, 519.17s/it]"]},{"output_type":"stream","name":"stdout","text":["Train loss: 0.09928076707963217,\n","Validation loss: 1.7251179536520425,\n","Time taken for this epoch: 0m 17s\n","7 batch best validation loss:0.2353648052124654\n"]},{"output_type":"stream","name":"stderr","text":["1700 instances: 100%|██████████| 6/6 [54:42<00:00, 547.03s/it]\n"]},{"output_type":"stream","name":"stdout","text":["Best validation loss:0.2353648052124654\n"]},{"output_type":"stream","name":"stderr","text":["  2%|▏         | 6/300 [00:00<00:05, 52.93it/s]"]},{"output_type":"stream","name":"stdout","text":["Start prediction on the test set\n"]},{"output_type":"stream","name":"stderr","text":["100%|██████████| 300/300 [00:05<00:00, 59.56it/s]\n"]},{"output_type":"stream","name":"stdout","text":["Test set loss: 0.24118250674878558\n","Best test loss: 0.029973315075039864\n","Prediction finished\n","torch.Size([256, 256, 3])\n"]},{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 5 Axes>"],"image/png":"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"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stdout","text":["torch.Size([256, 256, 3])\n"]},{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 5 Axes>"],"image/png":"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"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stdout","text":["torch.Size([256, 256, 3])\n"]},{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 5 Axes>"],"image/png":"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"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stderr","text":["  2%|▏         | 6/300 [00:00<00:04, 59.21it/s]"]},{"output_type":"stream","name":"stdout","text":["Start prediction on the test set\n"]},{"output_type":"stream","name":"stderr","text":["100%|██████████| 300/300 [00:05<00:00, 54.59it/s]\n"]},{"output_type":"stream","name":"stdout","text":["Test set loss: 0.24118250674878558\n","Best test loss: 0.029973315075039864\n","Prediction finished\n","torch.Size([256, 256, 3])\n"]},{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 5 Axes>"],"image/png":"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"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stdout","text":["torch.Size([256, 256, 3])\n"]},{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 5 Axes>"],"image/png":"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"},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stdout","text":["torch.Size([256, 256, 3])\n"]},{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 5 Axes>"],"image/png":"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"},"metadata":{"needs_background":"light"}}],"metadata":{"trusted":true}}]}